/**
 * 公共通用的js方法集合
 */
var common_common = function() {
	
	/**
	 * 全选、反选
	 * @param id
	 * @param checked
	 */
	var checkFunc = function(id, checked){
		$("#" + id + " input[name='checkIds']").each(function(){
			$(this).prop("checked", checked);
			
			try {
				if (!checked.is(':checked')) {
					$(this).parent().removeClass('checked');
				} else {
					$(this).parent().addClass('checked');
				}
			} catch(e) {
				
			}
	    });
	};
	
	/**
	 * 全选、反选
	 * @param id
	 */
	var getCheckFunc = function(id){
		var ids = "";
		$("#" + id + " input[name='checkIds']").each(function(){
			if($(this)[0].checked == true)
			ids += $(this).val() + ",";
	    });
		return ids;
	};
	
	var bottomBack = function (){
		$('#top_parent_menu_a').click();
	};
	
	var splitPageFlash = function (){
		$('#splitPage').submit();
	};

	//生成20位随机数
	var randomChar = function() {
		var x="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
		var tmp="";
		for(var i=0;i<20;i++)  {
			tmp += x.charAt(Math.ceil(Math.random()*100000000)%x.length);
		}
		return tmp;
	}
	
	//加法函数，用来得到精确的加法结果 
	//说明：javascript的加法结果会有误差，在两个浮点数相加的时候会比较明显。这个函数返回较为精确的加法结果。 
	//调用：accAdd(arg1,arg2) 
	//返回值：arg1加上arg2的精确结果 
	var accSub = function(arg1,arg2){
	    var r1,r2,m,n;
	    try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0}
	    try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0}
	    m=Math.pow(10,Math.max(r1,r2));
	    //动态控制精度长度
	    n=(r1>=r2)?r1:r2;
	    return ((arg1*m+arg2*m)/m).toFixed(n);
	}
	
	return {
		accSub : accSub,
		randomChar : randomChar,
		checkFunc : checkFunc,
		getCheckFunc : getCheckFunc,
		bottomBack: bottomBack,
		splitPageFlash: splitPageFlash 
	};
}();
